package com.fengwk.user.service;

import java.util.Collection;
import java.util.List;

import com.fengwk.support.page.PageInfo;
import com.fengwk.user.face.model.Permission;

public interface PermissionService {

	/**
	 * 存储权限
	 * 
	 * @param permission 权限
	 * @param description 描述
	 * @return
	 */
	Permission savePermission(String permission, String description);
	
	/**
	 * 移除权限
	 * 
	 * @param permissionId 权限id
	 * @return
	 */
	Permission removePermission(Long permissionId);
	
	/**
	 * 更新权限
	 * 
	 * @param permissionId 权限id
	 * @param permission 权限
	 * @param description 描述
	 * @return
	 */
	Permission updatePermission(Long permissionId, String permission, String description);
	
	/**
	 * 通过用户id获取权限列表
	 * 
	 * @param userId 用户id
	 * @return
	 */
	List<Permission> listPermissionByUserId(Long userId);
	
	/**
	 * 通过角色id获取权限列表
	 * 
	 * @param roleIds 角色id列表
	 * @return
	 */
	List<Permission> listPermissionByRoleIds(Collection<Long> roleIds);
	
	/**
	 * 通过角色id获取权限列表
	 * 
	 * @param roleId 角色id
	 * @return
	 */
	List<Permission> listPermissionByRoleId(Long roleId);
	
	/**
	 * 分页获取权限
	 * 
	 * @param pageNum 页码
	 * @param pageSize 每页大小
	 * @return
	 */
	PageInfo<Permission> pagePermission(int pageNum, int pageSize);
	
}
